#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int DataType;

typedef struct SingleList {
	struct SingleList* next;
	DataType data;
}ListNode;

ListNode* BuyListNode(DataType x);
void ListPrint(ListNode* L);
void ListPushBack(ListNode** L, DataType x);
void ListPushFront(ListNode** L, DataType x);
void ListPopBack(ListNode** L);
void ListPopFront(ListNode** L);
ListNode* ListFind(ListNode* L,DataType x);
void ListInsert(ListNode** L, ListNode* pos, DataType x);
void ListErase(ListNode** L, ListNode* pos);
void ListInsertAfter(ListNode* pos, DataType x);
void ListEraseAfter(ListNode* pos);
